package org.custom.spring.boot.datasource.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.custom.spring.boot.datasource.entity.datasource.CustomDataSourceProperties;

import java.util.List;

/**
 * 自定义动态数据源配置信息 DATA_SOURCE_PROPERTIES 表操作接口
 *
 * @author 李坤
 * @date 2022/4/2 8:52
 */
public interface CustomDataSourcePropertiesMapper extends BaseMapper<CustomDataSourceProperties> {
    /**
     * 查询 DATA_SOURCE_PROPERTIES 表中的全部数据
     *
     * @return 数据源配置属性列表
     */
    List<CustomDataSourceProperties> selectAll();

    /**
     * 根据 owner 查询 DATA_SOURCE_PROPERTIES 表中的数据
     *
     * @param owner 数据源所有者
     *
     * @return 数据源配置属性列表
     */
    List<CustomDataSourceProperties> selectAllByOwner(@Param("owner") String owner);

    /**
     * 向 DATA_SOURCE_PROPERTIES 表插入一条记录
     *
     * @param dataSourceProperties 数据源配置属性
     *
     * @return 插入的行数
     */
    int insert(@Param("dataSourceProperties") CustomDataSourceProperties dataSourceProperties);

    /**
     * 更新 DATA_SOURCE_PROPERTIES 表中的数据
     *
     * @param dataSourceProperties 数据源配置属性
     *
     * @return 更新的行数
     */
    int update(@Param("dataSourceProperties") CustomDataSourceProperties dataSourceProperties);
}
